﻿namespace MVC高级教程
{
    public class 依赖注入
    {
        //什么是依赖注入(DI)
            /**
                 1、依赖： 当一个类需要另一个类的协助来完成工作，就产生了依赖。
                                (这里有一个设计原则：依赖于抽象，而不是具体的实现。)

                 2、什么是注入：
                                把依赖的创建丢给其它人，自己只负责使用，其它人丢给你依赖的这个过程理解为注入。
            **/
        //什么是控制反转(IOC)
                /**控制反转是一种思想，在mvc中程序控制权由程序员的代码转交给框架，框架里管理你说需要的依赖，准确的说当前代码所需要的依赖不由自己创建，需要别人给
                   它创建，然后传给它。
                */
                //DI依赖注入是一种设计模式，这种设计模式实现了控制反转IOC的思想
            /**
                1、控制反转思想的目的： 降低耦合度，实现程序中服务的热插拔
                2、
            **/
        

        //IOC容器:
                /**
                    IOC容器负责两件事情：
                                        ①、绑定服务与实例之间的关系
                                        ②、获取实例，并对实例进行管理(创建与销毁实例)
                **/
          

        //Asp.net core DI
                /**
                 *  asp.net core中的DI是通过Nuget包，Microsft.Extensions.DependcyInjection 来实现的
                 *  也可以用 Autofac实现
                 **/

    }
}
